/**
 * 选择目录插件
 * 使用说明：在需要弹出选择部门窗口的标签加上 onclick="openCatalogModal();"
 * 确认选择部门按钮事件需要在使用的页面上实现如下方法:
    function confirmSelectCatalog(){
        var checkedCatalogIds = $("#checkedCatalogIds").val();//选择的部门id字符串集合
        if(checkedCatalogIds != ""){
            //根据id集合查询部门信息
            $.post(getCatalogListByIdsUrl,{"catalogIds":checkedCatalogIds},function(data){
                var catalog = data;
                ...
            })
        }
        //关闭选择人员窗口
        closeCatalogModal();
    }
 */
var getCatalogPageUrl = "/lrm/controller/catalog/getCatalogPage";
var getCatalogListByIdsUrl = "/lrm/controller/catalog/getCatalogListByIds";

$(function(){
    var div = '<div id="loadCatalogDiv"></div>';
    $("#mainScroll").after(div);
    loadCatalogModal();
})

//加载选择部门窗体组件
function loadCatalogModal(){
    $("#loadCatalogDiv").load(getCatalogPageUrl);
}

//打开选择部门窗口
function openCatalogModal(){
    $("#catalog_multi_select_modal").modal("show");
}

//关闭选择部门窗口
function closeCatalogModal(){
    $("#catalog_multi_select_modal").modal("hide");
}

//点击树形节点回调方法
function selectCatalog(event, treeId, treeNode){
    var zTree = $.fn.zTree.getZTreeObj(treeId);
    var childNodes = zTree.transformToArray(treeNode);
    var checkedCatalogArray = $("#checkedCatalogIds").val().split(",");
    var checkedCatalogStr="";
    $.each(childNodes,function(i,childNode){
        if(!childNode.isParent){
            var id = childNode.id;
            if($.inArray(id,checkedCatalogArray) < 0){
                checkedCatalogArray.push(id);
                var name = childNode.name;
                checkedCatalogStr += '<li class="ms-elem-selection ms-selected" style="display: list-item;" id="checkedCatalog_'+id+'" onclick=removeCheckedCatalog("'+id+'")><span><a class="pull-right btn btn-link">x</a>'+name+'</span></li>';
            }
        }
    });
    $("#checkedCatalogIds").val(array_remove("",checkedCatalogArray));
    $("#checkedCatalogList").append(checkedCatalogStr);
}

//移除已选部门
function removeCheckedCatalog(id){
    $("#checkedCatalog_"+id).remove();
    var checkedCatalogArray = $("#checkedCatalogIds").val().split(",");
    $("#checkedCatalogIds").val(array_remove(id,checkedCatalogArray));
}

//数组移除某一项
function array_remove(value,array){
    var newArray = new Array();
    $.each(array,function(i,item){
        if(item != value){
            newArray.push(item);
        }
    })
    return newArray;
}